package com.group.transaction.service.user;

import com.alibaba.fastjson.JSONObject;
import com.group.transaction.domain.User;
import com.group.transaction.model.ResultJson;

import java.util.concurrent.ExecutionException;

/**
 * @author YunXing Pang
 * @date 2020/3/15
 */
public interface UserSrevice {

    User selectUserByUsernameOrPhone(String data);

    /**
     * 用户登录
     *
     * @param user 用户信息
     * @return 登录结果
     */
    ResultJson login(User user);

    /**
     * 用户注册
     *
     * @param user 用户信息
     * @return 注册结果
     * @throws ExecutionException 线程异常
     */
    ResultJson register(User user);

    /**
     * 发送短信验证码
     *
     * @param phone 手机号
     * @return 发送结果
     */
    ResultJson sendSmsCode(String phone);


    /**
     * 编辑用户
     *
     * @param user
     * @return
     */
    ResultJson compileUser(User user);

    /**
     * 删除用户
     *
     * @param user
     * @return
     */
    JSONObject deleteUser(User user);

    /**
     * 查询用户
     *
     * @param user
     * @return
     */
    JSONObject queryUserData(User user);

    /**
     * 查询当前用户宴请码
     *
     * @param
     * @return
     */
    JSONObject queryUserCode();

    /**
     * 通过用户ID查询用户地址
     * @return
     */
    JSONObject queryUserAddressByUserId();
    /**
     * 新增发货地址
     */
    ResultJson addSendAddress(String address);
    /**
     * 根据用户ID查询用户信息
     */
    ResultJson queryUserDataByUserId(Long userId);
    /**
     * 手机号码和身份证后四位寄件
     */
    ResultJson sendLogistics(User user);
    /**
     * 通过用户ID查询用户地址
     * @return
     */
    ResultJson queryAddressByUserId(String userId);
    /**
     * 新增发货地址
     */
    ResultJson addUserAddress(User user);
}
